﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace AirWar
{
    //地图类（Map）类
    public class Map
    {
        #region 私有字段
        //地图的图片
        private Bitmap _mapBitmap;
        //地图尺寸的大小
        private Size _size;
        //两幅地图左上角的Y坐标（用于实现地图的滚动效果）
        private int _map1LeftTopY;
        private int _map2LeftTopY;
        #endregion
        #region 公有属性
        //地图的尺寸大小
        public Size _Size
        {
            get {return _size;}
            set {_size = value; }
        }
        #endregion
        //构造方法
        public Map(String bitmapFile)
        { 
            //装载相对应的地图文件
            _mapBitmap = new Bitmap(bitmapFile);
            //获取地图文件的尺寸大小
            _size = new Size(_mapBitmap.Width, _mapBitmap.Height);

            //让两幅地图正好竖着靠在一起
            _map1LeftTopY = -_size.Height;
            _map2LeftTopY = 0;
        }
        //实现地图的循环滚动
        public void Scroll(int scrollStep)
        { 
            //让地图向下滚动一段距离
            _map1LeftTopY = _map1LeftTopY + scrollStep;
            _map2LeftTopY = _map2LeftTopY + scrollStep;
            //如果其中一张超过地图高度，则将其回到顶部在循环滚动
            if (_map1LeftTopY >= _size.Height)
                _map1LeftTopY = -_size.Height;
            if (_map2LeftTopY >= _size.Height)
                _map2LeftTopY = -_size.Height;
        }
        //地图绘制
        public void DrawMe(Graphics g)
        { 
            //绘制第一幅地图
            g.DrawImage(_mapBitmap, 0, _map1LeftTopY, _size.Width, _size.Height);
            //绘制第二幅地图
            g.DrawImage(_mapBitmap, 0, _map2LeftTopY, _size.Width, _size.Height);
        }
    }
}
